package cn.tedu.shoppingmall.controller;

import cn.tedu.shoppingmall.mapper.ImgsMapper;
import cn.tedu.shoppingmall.vo.Images;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
@Api(tags = "8多图片管理模块")
@RestController
public class ImgsController {

    @Autowired
    ImgsMapper imgsMapper;
    @Value("${dirPath}")
    private String dirPath;

    @RequestMapping("/admin/addimgs")
    public void addimgs(Integer comid, MultipartFile[] picFiles) {
        Images images = new Images();
        images.setComid(comid);
        //存url
        List<String> urls = new ArrayList<>();
        for (MultipartFile picFile : picFiles) {
            if (!picFile.isEmpty()) {
                String fileName = picFile.getOriginalFilename();
                String suffix = fileName.substring(fileName.lastIndexOf("."));
                fileName = UUID.randomUUID() + suffix;
                //文件夹路径
                SimpleDateFormat f = new SimpleDateFormat("/yyyy/MM/dd/");
                //new Date()当前系统时间  /2021/12/20/
                String datePath = f.format(new Date());
                File dirFile = new File(dirPath + datePath);
                if (!dirFile.exists()) {
                    dirFile.mkdirs();
                }
                //文件完整路径
                String filePath = dirPath + datePath + fileName;
                try {
                    //保存文件
                    picFile.transferTo(new File(filePath));
                } catch (IOException e) {
                    System.out.println("URL装配失败，请检查路径");
                }
                //存进集合,待会一起赋值
                urls.add(datePath + fileName);
            }else {
                urls.add(null);
            }
        }
        //用map接收值,再给imgs传值
        Map<String,String> urlMap = new HashMap<>();
        for (int i=0;i<10;i++){
            urlMap.put("url"+(i+1),urls.get(i));
        }
        //判断该商品有没有更多图片集
        Images imagesOld = imgsMapper.SelectToIImgsByComId(comid);

        if (imagesOld !=null){
            //判断新传进来的有没有值1
            if (urlMap.get("url1")==null) {
                //没有则用原来的
                images.setUrl1(imagesOld.getUrl1());
            }//没有则更新成新的
            else {
                images.setUrl1(urlMap.get("url1"));}

            //判断新传进来的有没有值2
            if (urlMap.get("url2")==null) {
                //没有则用原来的
                images.setUrl2(imagesOld.getUrl2());
            }//没有则更新成新的
            else {
                images.setUrl2(urlMap.get("url2"));}

            //判断新传进来的有没有值3
            if (urlMap.get("url3")==null) {
                //没有则用原来的
                images.setUrl3(imagesOld.getUrl3());
            }//没有则更新成新的
            else {
                images.setUrl3(urlMap.get("url3"));}

            //判断新传进来的有没有值4
            if (urlMap.get("url4")==null) {
                //没有则用原来的
                images.setUrl4(imagesOld.getUrl4());
            }//没有则更新成新的
            else {
                images.setUrl4(urlMap.get("url4"));}

            //判断新传进来的有没有值5
            if (urlMap.get("url5")==null) {
                //没有则用原来的
                images.setUrl5(imagesOld.getUrl5());
            }//没有则更新成新的
            else {
                images.setUrl5(urlMap.get("url5"));}

            //判断新传进来的有没有值6
            if (urlMap.get("url6")==null) {
                //没有则用原来的
                images.setUrl6(imagesOld.getUrl6());
            }//没有则更新成新的
            else {
                images.setUrl6(urlMap.get("url6"));}

            //判断新传进来的有没有值7
            if (urlMap.get("url7")==null) {
                //没有则用原来的
                images.setUrl7(imagesOld.getUrl7());
            }//没有则更新成新的
            else {
                images.setUrl7(urlMap.get("url7"));}

            //判断新传进来的有没有值8
            if (urlMap.get("url8")==null) {
                //没有则用原来的
                images.setUrl8(imagesOld.getUrl8());
            }//没有则更新成新的
            else {
                images.setUrl8(urlMap.get("url8"));}

            //判断新传进来的有没有值9
            if (urlMap.get("url9")==null) {
                //没有则用原来的
                images.setUrl9(imagesOld.getUrl9());
            }//没有则更新成新的
            else {
                images.setUrl9(urlMap.get("url9"));}

            //判断新传进来的有没有值 10
            if (urlMap.get("url10")==null) {
                //没有则用原来的
                images.setUrl10(imagesOld.getUrl10());
            }//没有则更新成新的
            else {
                images.setUrl10(urlMap.get("url10"));}
            imgsMapper.updateImgs(images);
        }else {
            //直接赋值
            images.setUrl1(urlMap.get("url1"))
                    .setUrl2(urlMap.get("url2"))
                    .setUrl3(urlMap.get("url3"))
                    .setUrl4(urlMap.get("url4"))
                    .setUrl5(urlMap.get("url5"))
                    .setUrl6(urlMap.get("url6"))
                    .setUrl7(urlMap.get("url7"))
                    .setUrl8(urlMap.get("url8"))
                    .setUrl9(urlMap.get("url9"))
                    .setUrl10(urlMap.get("url10"));
            imgsMapper.insertImgs(images);
        }

    }
}
